iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
佛心分享-刷題不只是刷題

一直刷 CTF系列 第 23

一直刷 CTF - Day23

  • 分享至 

  • xImage
  •  

上課紀錄

SSRF (Server-Side Request Forgery)

  • 伺服器端請求偽造 (Server-Side Request Forgery)
  • 繞過防火牆,存取內網設備
  • 多數資料庫、 mail server 等機敏設備會選擇架在內網

先回看 url 的定義 rfc3986

Image

Image

對於 scheme 的利用

  1. 本地
    Image
  2. php 偽協議
    Image

gopher

Image

但 gopher 這堂課不會詳細講道,之後再看

檢查 authority 是否合法

目標: 成功存取內網的 ip 位置

可能被阻擋的方法

  1. 黑名單
    Image

    • 破解方法:
      Image
      Image
      Image

      利用 Domain 混淆
      Image

  2. 白名單
    Image

    • 破解方法:

      利用 Open Redirect
      Image
      https://google.com/amp/moon-jam.me 就會自動轉址到 moon-jam.me
      Image

  3. DNS 解析後判斷是否合法
    Image

    • 破解方法:

      利用 DNS Rebinding
      Image

      製作 DNS Rebinding 的網站

      上一秒的時候解析是 8.8.8.8 所以不會被擋掉
      Image

      但下一秒的時候解析就變成 127.0.0.1 了,就能成功存取內網 ip
      Image

      orange 做的神奇東西,在不同服務解析出來的結果不一樣
      Image

Lab - ssrf 1

用之前介紹的方法,利用 http://0 會被當成 http://localhost ,所以就可以成功存取內網 ip

Image

Lab - ssrf 2

看他的程式碼知道網址的開頭要是 httpbin.dev ,去 https://httpbin.dev 看看有什麼東西,發現了

Image

於是只要使用 https://httpbin.dev/redirect-to?url=http://localhost/internal-only 就可以成功存取內網 ip 拿盪 flag 了

Lab - ssrf 3

這提是用 DNS Rebinding 的方式,但試了好幾次都沒成功,只好來寫個程式以量取勝

import requests

url = "http://chall.nckuctf.org:28123/mkreq?url=http%3A%2F%2F7f000001.c0a80001.rbndr.us%2Finternal-only"

while True:
    response = requests.get(url)
    print(response.text)
    if "NCKU" in response.text:
        print(response.text)
        break

然後跑一下下之後就拿到 flag 了

Front-end Security

除了 XSS 和 CSRF 之外,還有很多其他的酷東西

Image

網頁前端本身的限制,例如說不可能單純透過網頁讓你家的印表機列印東西,需要一個本地的伺服器,讓網頁去戳本地伺服器,再由本地伺服器去戳印表機

So

Image

Image

這個 CVE 只要你點開一個網頁,你的小算盤就會跳出來

Image

或者是很多人用的 electron ,背後其實也算是一個瀏覽器,也有可能被攻擊

XSS

Image

Self-XSS: 只能攻擊自己的 XSS ,但可能可以透過其他攻擊手法造成更嚴重的影響

Image

Blind-XSS: XSS 在不知道甚麼時候可能會被觸發,例如當你把名字改成 XSS payload

有個人把自己特斯拉的名字改成 XSS payload ,有天車壞了拿去送修,結果剛好 XSS payload 被觸發,拿到 10000 USD 的 Bug Bounty

Image

Image

分類

  1. Relfected XSS (Non-persistent XSS)
    Image
    Image
    Image
  2. Stored XSS (Persistent XSS)
    Image
  3. DOM-based XSS
    Image

常見 payload

Image
Image
Image
Image

常見 payload - javascript 偽協議

Image

避免 htmlescape

Image

Image

Image

因為 javascript 偽協議可以不包含任何雙引號,所以就可以繞過 htmlescape

常見 payload - innerHTML bitfall

Image
Image
Image
Image

玩 XSS game~

XSS worm

Image

TODO

搞懂那 XSS Lab 怎麼拿到 Flag

參考資料


上一篇
一直刷 CTF - Day22
下一篇
一直刷 CTF - Day24
系列文
一直刷 CTF30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言